"""
lambda 表达式
lambda关键字用于创建小巧的匿名函数
lambda表达式可以用于任何需要函数对象的地方
lambda在语法上只可以是单个表达式，在语义上，只是一个常规函数定义的语法糖
lambda可以引用包含作用域的变量
"""

def testLambda():
    # 返回两数之和 lambda a, b: a+b
    # 但是和嵌套函数一样，都可以使用作用域的变量

    def Sum(delta):
        return lambda num: num + delta

    # 返回一个函数
    increasefunc = Sum(44)

    print("increasefunc(0) is {}".format(increasefunc(0)))

    print("increasefunc(2) is {}".format(increasefunc(2)))

    print("increasefunc(4) is {}".format(increasefunc(4)))

    # lambda还可以把匿名函数作为函数的实参
    pairs = [(1, 'one'), (2,'two'), (3, 'three'), (4, 'four')]
    pairs.sort(key= lambda pair:pair[1])
    print('sorted pairs is {}'.format(pairs))

testLambda()